#include<stdio.h>
	int main(void)
	{  
	  int m,n,t,a,b;
	  t=0;
	  scanf("%d %d",&m,&n);
	  a=m;
	  b=n;//先把m和n分别赋值给a和b，用来求最小公倍数
 
      //法(1)
	  /*
        while(t=m%n,t!=0)//限制条件有两个
    //求出最小公约数和最大公倍数的数值与m和n大小无关，所以不用考虑是m%n还是n%m，结果一样
		{
			m=n;
			n=t;
		}
		printf("最大公约数是:%d\n",n);//最后n为最大公约数
		printf("最小公倍数是:%d\n",a/n*b);
       */
 
      //法(2)
    while (n != 0)//一个限制条件
	{
		t = m % n;//t的赋值在限制条件里面
		m = n;
		n = t;
	}
	printf("最大公约数是:%d\n", m);//最后m为最大公约数
	printf("最小公倍数是:%d\n", a / m * b);
//最小公倍数求法和上边一样(除以n(最大公因数)变成除以m)
 
 
       return 0;
	}